home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / mips / svr3-5.h < prev    next >
C/C++ Source or Header  |  1994-08-14  |  3KB  |  88 lines

  1. /* Definitions of target machine for GNU compiler.  MIPS RISC-OS 5.0 System V version.
  2.    Copyright (C) 1991 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU CC.
  5.  
  6. GNU CC is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU CC is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU CC; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #define MIPS_SYSV
  21.  
  22. #define CPP_PREDEFINES "\
  23. -Dmips -Dunix -Dhost_mips -DMIPSEB -DR3000 -DSYSTYPE_SYSV \
  24. -D_mips -D_unix -D_host_mips -D_MIPSEB -D_R3000 -D_SYSTYPE_SYSV \
  25. -Asystem(unix) -Asystem(svr3) -Acpu(mips) -Amachine(mips)"
  26.  
  27. #define STANDARD_INCLUDE_DIR "/sysv/usr/include"
  28.  
  29. #define LINK_SPEC "\
  30. %{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
  31. %{bestGnum} %{shared} %{non_shared} \
  32. %{call_shared} %{no_archive} %{exact_version} \
  33. %{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
  34. -systype /sysv/ "
  35.             
  36. #define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
  37.  
  38. #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt1.o%s}}"
  39.  
  40. #define MACHINE_TYPE "RISC-OS System V Mips"
  41.  
  42. /* Override defaults for finding the MIPS tools.  */
  43. #define MD_STARTFILE_PREFIX "/sysv/usr/lib/cmplrs/cc/"
  44. #define MD_EXEC_PREFIX "/sysv/usr/lib/cmplrs/cc/"
  45.  
  46. /* Mips System V doesn't have a getpagesize() function needed by the
  47.    trampoline code, so use the POSIX sysconf function to get it.
  48.    This is only done when compiling the trampoline code.  */
  49.  
  50. #ifdef  L_trampoline
  51. #include <sys/param.h>
  52. #include <unistd.h>
  53.  
  54. /* In at least 5.0 and 5.01, there is no _SC_PAGE_SIZE macro, only a
  55.    _SC_PAGESIZE macro.  */
  56. #ifdef _SC_PAGESIZE
  57. #define _SC_PAGE_SIZE _SC_PAGESIZE
  58. #endif
  59.  
  60. #ifdef _SC_PAGE_SIZE
  61. #define getpagesize()    sysconf(_SC_PAGE_SIZE)
  62.  
  63. #else                /* older rev of OS */
  64. #define getpagesize()    (NBPC)
  65. #endif /* !_SC_PAGE_SIZE */
  66. #endif /*  L_trampoline */
  67.  
  68. /* Generate calls to memcpy, etc., not bcopy, etc.  */
  69. #define TARGET_MEM_FUNCTIONS
  70.  
  71. #include "mips/mips.h"
  72.  
  73. /* Some assemblers have a bug that causes backslash escaped chars in .ascii
  74.    to be misassembled, so we just completely avoid it.  */
  75. #undef ASM_OUTPUT_ASCII
  76. #define ASM_OUTPUT_ASCII(FILE,PTR,LEN)            \
  77. do {                            \
  78.   unsigned char *s;                    \
  79.   int i;                        \
  80.   for (i = 0, s = (unsigned char *)(PTR); i < (LEN); s++, i++)    \
  81.     {                            \
  82.       if ((i % 8) == 0)                    \
  83.     fputs ("\n\t.byte\t", (FILE));            \
  84.       fprintf ((FILE), "%s0x%x", (i%8?",":""), (unsigned)*s); \
  85.     }                            \
  86.   fputs ("\n", (FILE));                    \
  87. } while (0)
  88.